
package com.common.apiResult;

import cn.hutool.core.convert.ConverterRegistry;
import cn.hutool.core.date.DateUtil;
import com.aliyuncs.exceptions.ServerException;
import com.common.config.AlipayProperties;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ClassUtils;
import org.springframework.util.ResourceUtils;

import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;


@Slf4j
public class ApiController {

    // HuTool类型转换器
    public static final ConverterRegistry CONVERTER_REGISTRY = ConverterRegistry.getInstance();

    /**
     * <p>
     * 请求成功
     * </p>
     *
     * @param data 数据内容
     * @param <T>  对象泛型
     * @return
     */
    protected <T> ApiResult<T> ok(T data) {
        return  ApiResult.ok(data);
    }

    /**
     * <p>
     * 请求失败
     * </p>
     *
     * @param msg 提示内容
     * @return
     */
    protected ApiResult<Object> fail(String msg) {
        return  ApiResult.fail(msg);
    }

    /**
     * <p>
     * 请求失败
     * </p>
     *
     * @param apiCode 请求错误码
     * @return
     */
    protected ApiResult<Object> fail(ApiCode apiCode) {
        return  ApiResult.fail(apiCode);
    }


    /**
     * 生成订单流水号
     * @param accountId
     * @return
     */
    public static String generateOrderSerialNumber(Long accountId) {
        return DateUtil.format(DateUtil.date(),"yyyyMMddHHmmss") + accountId + new Random().nextInt(1000);
    }

}
